package com.erp.dao;

import com.erp.bean.Order;
import java.sql.SQLException;
import java.util.List;
import java.util.Set;

/**
 * @author lpy
 * 订单数据访问接口
 */
public interface OrderDao {
    /**
     * 数据新增操作
     * @param order  封装数据的实体类对象
     * @return      受影响的行数
     * @throws SQLException 数据库执行异常
     */
    public int add(Order order) throws SQLException;

    /**
     * 数据的整体修改(实体类对象一定要包含id信息)
     * @param order  封装数据的实体类对象
     * @return 受影响的行数
     * @throws SQLException 数据库执行异常
     */
    public int update(Order order) throws SQLException;

    /**
     * 批量修改订单状态
     * @param oids 要修改的订单ID集合
     * @param sid  订单状态编号
     * @return     受影响的行数
     * @throws SQLException 数据库执行异常
     */
    public int updateBatch(Set<String> oids,int sid) throws SQLException;

    /**
     * 根据id查询信息
     * @param  oid 订单编号
     * @return 实体类对象
     * @throws SQLException 数据库执行异常
     */
    public Order findById(String oid) throws SQLException;

    /**
     * 查询全部
     * @return 全部数据集合
     * @throws SQLException 数据库执行异常
     */
    public List<Order> findAll() throws SQLException;

    /**
     * 分页查询全部数据
     * @param currentPage 当前页
     * @param pageSize	  每页显示数据
     * @throws SQLException 数据库执行异常
     * @return 结果集合
     */
    public List<Order> findAllSpilt(Integer currentPage,Integer pageSize) throws SQLException;

    /**
     * 模糊分页查询全部数据
     * @param currentPage 当前页
     * @param pageSize	  每页显示数据
     * @param column	  模糊查询列
     * @param keyWords	  模糊查询关键字
     * @return 结果集合
     * @throws SQLException 数据库执行异常
     */
    public List<Order> findAllSpilt(Integer currentPage,Integer pageSize,String column,String keyWords) throws SQLException;

    /**
     * 进行数据表总数据量统计
     * @return count(*)函数的返回结果
     * @throws SQLException 数据库执行异常
     */
    public Long getAllCount() throws SQLException;

    /**
     * 进行数据表的模糊查询数据量统计
     * @param colunm      指定模糊查询的数据列
     * @param keyWord     模糊查询关键字
     * @return count(colunm)函数的返回结果
     * @throws SQLException 数据库执行异常
     */
    public Long getAllCount(String colunm,String keyWord) throws SQLException;
}
